Control area networks (CANs) are peer-to-peer networks that are typically used in vehicles. The CANs allow communication between electronic control units (ECUs) that are distributed across the network. The majority of automotive CAN networks are designed using tools that generate a set of data files that describe the interaction on this network. The most common format for this data is a “.dbc” file. While tools exist today that will generate C code for application developers and the underlying signal software that access this network, they lack some core functionality.
For example, the types of signals and protocols used by CANs are predefined by C language header files. The C language header files can usually only be accessed by software developers having access to proprietary formats and require a programmer's input to manage and expose. Additionally, the .dbc file is a proprietary data format file that only a relatively small number of toolsets support. Existing systems typically generate information from the .dbc which is statically compiled into system components. Existing systems also have little or no ability to support additional metadata for the information contained within the .dbc file.